namespace wxb
{
    template<class T,class Container=std::deque<T> >
            class stack
            {
                public:
                void push(const T& x)
                {
                    st.push_back(x);
                }
                void pop()
                {
                    st.pop_back();
                }

                size_t size()
                {
                    st.size();
                }
                bool empty()
                {
                    st.empty();
                }
               const  T&top()const
                {
                    return st.back();
                }
                  T&top()
                {
                    return st.back();
                }
            private:
                Container st;
            };
    template<class T,class Container=std::deque<T> >
    class queue
    {

    public:
        void push(const T& x)
        {
            st.push_back(x);
        }
        void pop()
        {
            st.pop_front();
        }
        size_t size()
        {
            st.size();
        }
        bool empty()
        {
            st.empty();
        }
        const  T&top()const
        {
            return st.front();
        }
        T&top()
        {
            return st.front();
        }
    private:
        Container st;
    };
}